﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПериодНачисленияЗарплаты
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"f662e0b1-f14b-41bd-94d8-49fc45fbcccc\", \"Представление\":\"ТекущийМесяц\"}")]
		ТекущийМесяц = 0,//Текущий месяц
		[EnumMember(Value = "{\"Ссылка\":\"e513a5cb-48e8-4fd0-9a31-5f7c37542086\", \"Представление\":\"ПерваяПоловинаТекущегоМесяца\"}")]
		ПерваяПоловинаТекущегоМесяца = 1,//Первая половина текущего месяца
		[EnumMember(Value = "{\"Ссылка\":\"d9c249cd-db10-4163-a2f5-f0ea159c61d2\", \"Представление\":\"ВтораяПоловинаТекущегоМесяца\"}")]
		ВтораяПоловинаТекущегоМесяца = 2,//Вторая половина текущего месяца
		[EnumMember(Value = "{\"Ссылка\":\"ccd13237-2516-4dc4-ad44-175bbd0ba0b9\", \"Представление\":\"ПрошлыйПериод\"}")]
		ПрошлыйПериод = 3,//Прошлый период
		[EnumMember(Value = "{\"Ссылка\":\"c9b695ec-6833-4e0f-bff6-86054beb0aa2\", \"Представление\":\"УказанныйПериод\"}")]
		УказанныйПериод = 4,//Указанный период
	}
	public static partial class ПериодНачисленияЗарплаты_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ТекущийМесяц = new Guid("fc49d894-fb45-cccc-41bd-f14bf662e0b1");//Текущий месяц
		public static readonly Guid ПерваяПоловинаТекущегоМесяца = new Guid("7c5f319a-5437-8620-4fd0-48e8e513a5cb");//Первая половина текущего месяца
		public static readonly Guid ВтораяПоловинаТекущегоМесяца = new Guid("eaf0f5a2-9c15-d261-4163-db10d9c249cd");//Вторая половина текущего месяца
		public static readonly Guid ПрошлыйПериод = new Guid("5b1744ad-0bbd-b9a0-4dc4-2516ccd13237");//Прошлый период
		public static readonly Guid УказанныйПериод = new Guid("0586f6bf-eb4b-a20a-4e0f-6833c9b695ec");//Указанный период
		public static ПериодНачисленияЗарплаты Получить(this ПериодНачисленияЗарплаты Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПериодНачисленияЗарплаты Получить(this ПериодНачисленияЗарплаты Значение, Guid Ссылка)
		{
			if(Ссылка == ТекущийМесяц)
			{
				return ПериодНачисленияЗарплаты.ТекущийМесяц;
			}
			else if(Ссылка == ПерваяПоловинаТекущегоМесяца)
			{
				return ПериодНачисленияЗарплаты.ПерваяПоловинаТекущегоМесяца;
			}
			else if(Ссылка == ВтораяПоловинаТекущегоМесяца)
			{
				return ПериодНачисленияЗарплаты.ВтораяПоловинаТекущегоМесяца;
			}
			else if(Ссылка == ПрошлыйПериод)
			{
				return ПериодНачисленияЗарплаты.ПрошлыйПериод;
			}
			else if(Ссылка == УказанныйПериод)
			{
				return ПериодНачисленияЗарплаты.УказанныйПериод;
			}
			return ПериодНачисленияЗарплаты.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПериодНачисленияЗарплаты Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПериодНачисленияЗарплаты Значение)
		{
			switch (Значение)
			{
				case ПериодНачисленияЗарплаты.ТекущийМесяц: return ТекущийМесяц;
				case ПериодНачисленияЗарплаты.ПерваяПоловинаТекущегоМесяца: return ПерваяПоловинаТекущегоМесяца;
				case ПериодНачисленияЗарплаты.ВтораяПоловинаТекущегоМесяца: return ВтораяПоловинаТекущегоМесяца;
				case ПериодНачисленияЗарплаты.ПрошлыйПериод: return ПрошлыйПериод;
				case ПериодНачисленияЗарплаты.УказанныйПериод: return УказанныйПериод;
			}
			return Guid.Empty;
		}
	}
}